home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gigarom 1
/
Gigarom Macintosh Archives (Quantum Leap)(CDRM1080320)(1993).iso
/
FILES
/
DEV
/
I-Z
/
Lex.cpt
/
Lex
/
LEXLIB.π folder
/
LMOVB.C
< prev
next >
Wrap
Text File
|
1990-06-09
|
1KB
|
49 lines
/*
HEADER: CUG nnn.nn;
TITLE: LEX - A Lexical Analyser Generator
VERSION: 1.0 for IBM-PC
DATE: Jan 30, 1985
DESCRIPTION: A Lexical Analyser Generator. From UNIX
KEYWORDS: Lexical Analyser Generator YACC C PREP
SYSTEM: IBM-PC and Compatiables
FILENAME: LMOVB.C
WARNINGS: This program is not for the casual user. It will
be useful primarily to expert developers.
CRC: N/A
SEE-ALSO: YACC and PREP
AUTHORS: Scott Guthery 11100 leafwood lane Austin, TX 78750
COMPILERS: DESMET-C
REFERENCES: UNIX Systems Manuals
*/
/*
* Bob Denny 28-Aug-82 Remove reference to stdio.h
* Scott Guthery 20-Nov-83 Adapt for IBM PC & DeSmet C
*/
#include "lex.h"
SHORTINT
_lmovb(ltab_ptr, the_char, state)
register struct lextab *ltab_ptr;
register SHORTINT the_char, state;
{
SHORTINT base;
while ( (base = ltab_ptr->llbase[state]+the_char) > ltab_ptr->llnxtmax ||
(ltab_ptr->llcheck[base] & 0377) != state) {
if (state != ltab_ptr->llendst)
{
/*
* This miscompiled on Decus C many years ago:
* state = ltab_ptr->lldefault[state] & 0377;
*/
base = ltab_ptr->lldefault[state] & 0377;
state = base;
}
else
return(-1);
}
return(ltab_ptr->llnext[base] & 0377);
}